Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

12 Stron V  « < 5 6 7 8 9 > »   
Reply to this topicStart new topic
> Pager (stronicowanie), klasa, php4 i php5
Balon
post
Post #121





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

Ostrzeżenie: (0%)
-----


hm Ty nie rozumiesz chyba jakiej zasadzie działa stronnicowanie. Proponuje Ci wpisać obrazki do tablicy i wyświetlać fotki pętlą for gdzie start i end pętli przekaże Ci klasa pagera.

edit: he sie gra sie ma (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Balon 24.05.2007, 13:30:28
Go to the top of the page
+Quote Post
nospor
post
Post #122





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale przeciez klasa ci nie podzieli pliku. Skad niby ona ma to wiedziec jak ma to zrobic? Zadaniem klasy jest zwrócenie dla Ciebie informacji, od jakiego indexu masz zaczac wyswietlac i na jakim skonczyc. A jak ty to wykorzystasz to juz Twoja sprawa.

Przyklad:
Masz tablicę o 100 elementach.
Ustawiles pager, by na stronie bylo po 10 elementow.
Klikasz na druga strone, a klasa zwroci ci informację, ze masz wyswietlisz elementy od 11 do 20. Ale wyswietlic musisz juz ty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

edit: cos mi sie net zmulil i Balon mnie wyprzedzil (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

edit
No, niemalże rok nic nie zmieniałem w klasie. Czas wiec na nową wersję 2.5.
Wersja ta niestety nie jest kompatybilna wstecz. Wszakże łatwo możecie przejsc na nowe zmiany, ale zawsze to jakieś utrudnienie
Wiecej info tutaj

Cytat
Dalej bawiłem się Twoja klasa i brakowało mi w niej takiego bajeru, że jak mam jakieś parametry, np. index.php?a=b&c=2 to coby Pager mi się do tego dopisał.
Juz jest (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
acztery
post
Post #123





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


jak dla mnie 1 klasa. Znakomita robota. Tylko brakuje mi oprucz generowania pagera np tego co było we wcześniej wersji np Ilość wszystkich rekordów .... i możliwość zmiany tego tekstu na swój..
Go to the top of the page
+Quote Post
nospor
post
Post #124





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ilość wszystkich rekordów
hmmm, bylo tak? Juz nawet nie pamietam pierwszej wersji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ale to przeciez nie problem. Klasa zwraca ci tablicę pagera. Na podstawie tej tablicy możesz zrobic swoja wlasny wygląd taki jak chcesz.
Mozesz oddziedziczyc po klasie i nadpisac metodę toString() by osiągnąć to co chcesz. Do wyboru do koloru (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
acztery
post
Post #125





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


ok napisałem sobie, ale znalazłem 1 mały błąd chyba, że źle wykorzystuje klase

mam wyszukiwarkę ktora przeszukuje baze 1000 rekordów wpisze jakies tam słowo i znajdzie mi 500 rekordów i jak przechodze miedzy stronami np z 1 na 4 potem na 1 to porcjuje dla 1000.

mam takie cos:

  1. <?php
  2. $classDoc = new Doc();
  3. $classDoc->_where = $_GET['FOR'];
  4. $classDoc->_lang = Lang::getSesLang("SES");
  5. $classDoc->_str = $_POST['q']; // slowo z wyszukiwarki
  6. $classDoc->_order = "time DESC";
  7. $smarty->assign('cDoc2',$classDoc->likeCountDoc());
  8.  
  9. $pager = new Pager("list_doc");
  10. $pager->SetTotalRecords($classDoc->likeCountDoc());
  11. $pager->Make(true); 
  12. $renderPager = $pager->Render(); 
  13. $start = $pager->GetIndexRecordStart();
  14. $end = $pager->GetIndexRecordEnd();
  15. $smarty->assign('renderPager',$renderPager);
  16. $endes = $end - $start + 1;
  17.  
  18. $classDoc->_f = $start;
  19. $classDoc->_t = $endes;
  20.  
  21. $smarty->assign('RESULT',$classDoc->likeDocuments());
  22. ?>


ale cos nie nie tak po przejscu dalej zmienna z posta znika :/ a powinna byc widoczna nawet po przejscu na inna podstronę pagera. Musze szukane słowo przekazywać np w GET czy klasa to obsługuje?

Ten post edytował acztery 20.08.2007, 20:28:00
Go to the top of the page
+Quote Post
nospor
post
Post #126





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ale cos nie nie tak po przejscu dalej zmienna z posta znika
No tak. zmienne z posta znikają. Normalne przecież (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) POST jest widoczny tylko dla wyslanego formularza w danym żądaniu.
Jesli leci POST to musisz zapamietac go np. w sesji. Później jesli nie bylo posta to pobierasz go z sesji i juz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Albo możesz formularz wysylac getem a nie postem. Klasa daje mozliwosc generowania linkow z uwzględnieniem parametrow w get.

edit:
tu to opisalem
http://nospor.pl/formularz-i-stronicowanie...-stanu-n26.html
Go to the top of the page
+Quote Post
become
post
Post #127





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


czy przy pomocy tej klasy ustawie stronicowanie takie jak na wykop.pl i czy mogę ingerować w wygląd ?
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #128





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Dziwne pytanie zadajesz... ale tak - ustawisz, choć musisz sam (głowy nie dam) napisać skrypt do wyglądu.
Najlepiej ściągnij i się przekonaj ;]

Pozdrawiam.
Go to the top of the page
+Quote Post
kallosz
post
Post #129





Grupa: Zarejestrowani
Postów: 272
Pomógł: 19
Dołączył: 29.07.2006

Ostrzeżenie: (10%)
X----


Witam

Jest może możliwośc załączenia klasy pager do innej klasy ?

Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #130





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
czy przy pomocy tej klasy ustawie stronicowanie takie jak na wykop.pl i czy mogę ingerować w wygląd ?

Mozesz. ALbo przekazujesz funkcje, ktora generuje wyglad, albo nadpisujesz klase, albo pobierasz tablice pagera i na jej podstawie generujesz wyglad. Przyklady w paczce.

Cytat
Jest może możliwośc załączenia klasy pager do innej klasy ?
Klasa jak klasa, robisz z nią co chcesz i gdzie chcesz. Moze sprecyzuj pytanie, jesli ta odpowiedź cie nie zadowala
Go to the top of the page
+Quote Post
radziowi
post
Post #131





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 9.10.2006
Skąd: Brzozów

Ostrzeżenie: (0%)
-----


Witam bardzo dziękuję za klase działą bardzo fajnie:)

Mam jednak dziwny zachowanie klasy. Za kazdym razem jak wywala mi taki tekst powyżej tabeli. patrzylem w kod nie ma nic takiego. Czego to moze byc blad??

  1. <?php
  2. &#271;ťż
  3. ?>


Mam to połączone ze Smartami W kodzie tego tekstu nie mam na pewno .

Mam kod w pliku pager.php wszytko jest ok. Jesli zmienia nazwe pliku np import.php to wywala ten blad

Czy nazwy plikow maja cos do tej klasy??

Ten post edytował radziowi 26.12.2007, 16:28:39
Go to the top of the page
+Quote Post
become
post
Post #132





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


Cytat(Cysiaczek @ 23.12.2007, 02:20:07 ) *
Dziwne pytanie zadajesz... ale tak - ustawisz, choć musisz sam (głowy nie dam) napisać skrypt do wyglądu.
Najlepiej ściągnij i się przekonaj ;]

Pozdrawiam.


No jakoś mi się nie udało.
Jak zrobić aby wyswietlila sie zawsze na pasku nawigacyjnym 1-y i ostatni numer strony a pomiedzy zakresami pojawialy sie kropki

np. tak:

1 ... 10 11 12 13 14 15 ... 123

Ten post edytował become 29.12.2007, 17:42:15
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #133





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Akurat jakiś czas temu przerobiłem metodę tej klasy:

  1. <?php
  2. protected function toString() {
  3. //print_pre($this->array);
  4. if ($this->totalRecords <= $this->RecordsPerPage)
  5. return '';
  6. $_str = '';
  7. $sep = ' ';
  8.  
  9.  
  10. //if (isset($this->array[self::GOTO_PREV_X]))
  11. //$_str .= $this->createHTMLLink($this->array[self::PAGES_PER_NAV].' stron(y) do tyłu', $this->array[self::GOTO_PREV_X][self::LINK], '<<').$sep;
  12. if (isset($this->array[self::GOTO_PREV]))
  13. $_str .= $this->createHTMLLink('Poprzednia strona', $this->array[self::GOTO_PREV][self::LINK], 'poprzednia').$sep;
  14.  
  15. if (isset($this->array[self::GOTO_FIRST]))
  16. $_str .= $this->createHTMLLink('Pierwsza strona', $this->array[self::GOTO_FIRST][self::LINK], $this->array[self::GOTO_FIRST][self::PAGE]).' ...'.$sep;
  17.  
  18. foreach ($this->array[self::PAGES] as $_page => $_pageLink){
  19. if (!$_pageLink)
  20. $_str .= '<span><b>'.$_page.'</b></span>';
  21. else
  22. $_str .= $this->createHTMLLink("Strona ".$_page, $_pageLink, $_page);
  23. $_str .= $sep;
  24. }
  25.  
  26. if (isset($this->array[self::GOTO_LAST]))
  27. $_str .= $this->createHTMLLink('Ostatnia strona', $this->array[self::GOTO_LAST][self::LINK], '... '.$this->array[self::GOTO_LAST][self::PAGE]);
  28.  
  29. if (isset($this->array[self::GOTO_NEXT]))
  30. $_str .= $sep.$this->createHTMLLink('Następna strona', $this->array[self::GOTO_NEXT][self::LINK], 'następna');
  31. //if (isset($this->array[self::GOTO_NEXT_X]))
  32. //$_str .= $sep.$this->createHTMLLink($this->array[self::PAGES_PER_NAV].' stron(y) do przodu', $this->array[self::GOTO_NEXT_X][self::LINK], '>>');
  33.  
  34.  
  35. return $_str;
  36. }
  37. ?>


W każdym razie jest z kropkami ;p
Go to the top of the page
+Quote Post
nospor
post
Post #134





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Mam jednak dziwny zachowanie klasy. Za kazdym razem jak wywala mi taki tekst powyżej tabeli. patrzylem w kod nie ma nic takiego. Czego to moze byc blad??
hmmm, czyzby BOM? Takie krzaczki co dodaje plik w kodowaniu UTF8? U mnie tego nie ma bo pisalem to normalnym edytorem, ale moze ty robiles jakiegos "Zapisz" na mojej klasie i ci sie BOM dopisal?
Go to the top of the page
+Quote Post
pawel.s
post
Post #135





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 15.08.2007
Skąd: trojmiasto

Ostrzeżenie: (0%)
-----


witajcie mam problem nie chce wyswietlic mi sie pager
mam cos takiego
  1. <?php
  2. $sql = 'select count(*) from notice';
  3. $result = mysql_query($sql);
  4. $row = mysql_fetch_array($result);
  5. $recordsCount = $row[0];//pobranie liczby rekordów  
  6. $pager = new Pager('p');  
  7. $pager->SetTotalRecords(3);//ustawienie liczby rekordów  //wygenerowanie pagera i zapamietanie go w zmiennej w celu  //pozniejszego wyswietlenia  
  8. $renderPager = $pager->Render();  
  9. $start = $pager->GetIndexRecordStart();//pobranie indexu rekordu początkowego  
  10. $end = $pager->GetIndexRecordEnd();//pobranie indexu rekordu koncowego  //zapytanie z uwzglenieniem stronicowania  
  11. $sql = 'select SQL_CALC_FOUND_ROWS * from notice limit '.$start.','.($end - $start + 1);  //...pobranie wyników i ich wyswietlenie  
  12. $result = mysql_query($sql);
  13. $row = array();
  14. while ($row = mysql_fetch_assoc($result)){
  15.  $res[] = $row;
  16. }
  17. $res = $res
  18. ?>


potem
  1. <?php
  2. smarty->assign('pager',$renderPager);
  3. ?>

i w tmplejcie

  1. <div id="p">{$peger}</div>

czy dobrze robie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
vokiel
post
Post #136





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


może przez literówkę w template: e => a
  1. <div id="p">{$pager}</div>
Go to the top of the page
+Quote Post
pawel.s
post
Post #137





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 15.08.2007
Skąd: trojmiasto

Ostrzeżenie: (0%)
-----


nie to nie przez to wogole jak zrobie vardump z $pagera to jest pusty
Go to the top of the page
+Quote Post
nospor
post
Post #138





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A jakiej wersji pagera uzywasz? Najnowszej 2.5 ? No to zjadles Make(). Zajrzyj do przykladow w paczce do sciągniecia. Tam masz pokazane jak prawidłowo uzyc nowej wersji
Go to the top of the page
+Quote Post
pawel.s
post
Post #139





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 15.08.2007
Skąd: trojmiasto

Ostrzeżenie: (0%)
-----


wersja 2.0 dla php5 takiej uzywam co jest nie tak (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #140





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. $pager->SetTotalRecords(3)
  3. ?>

Czemu ustawiasz licze rekordow na 3? Przeciez wczesniej wyliczasz $recordsCount, ktore jest prawdziwą liczbą rekordow i tą tę zmienną powinienes ustawic jako liczbę rekordow. Teraz ustawiasz 3. A jesli liczba rekordow jest mniejsza od liczby rekordow na stronie, to pager nic nie generuje bo nie ma sensu generowac jedną strone.
Go to the top of the page
+Quote Post

12 Stron V  « < 5 6 7 8 9 > » 
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.08.2025 - 12:30